package com.tianhui.consignortwofei.api;


import com.fgs.common.CommonResponse;
import com.fgs.common.entity.CommonDataListInfo;
import com.tianhui.consignortwofei.mvp.model.AddTaiTouBean;
import com.tianhui.consignortwofei.mvp.model.FindCarDeliveryInfo;
import com.tianhui.consignortwofei.mvp.model.FuJianListBean;
import com.tianhui.consignortwofei.mvp.model.QuotationListBean;
import com.tianhui.consignortwofei.mvp.model.SendFuJianYuanBean;
import com.tianhui.consignortwofei.mvp.model.enty.DriverInfo;
import com.tianhui.consignortwofei.mvp.model.enty.OnlyLookQuestBean;
import com.tianhui.consignortwofei.mvp.model.enty.ShenHeTongJiBean;
import com.tianhui.consignortwofei.mvp.model.enty.bankCard.BankCardInfo;
import com.tianhui.consignortwofei.mvp.model.hetong.HuiKuanListBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;

/**
 * api service
 */
public interface DriverApiService {

    //获取司机列表
    @GET("smc/driver/list")
    Observable<CommonResponse<CommonDataListInfo<DriverInfo>>> driverList(@QueryMap Map<String, String> map);


    //修改手机号
    @POST("account/udpateCustomerAndDriverByAccount")
    Observable<CommonResponse> changeDriverPhone(@QueryMap Map<String, String> map);
    //删除司机
    @POST("smc/driver/deleteDriver")
    Observable<CommonResponse> deleteDriver(@QueryMap Map<String, String> map);


    //获取指派司机列表
    @GET("smc/driver/lists")
    Observable<CommonResponse<List<DriverInfo>>> assignDriverList(@QueryMap Map<String, String> map);

    //获取司机信息
    @GET("smc/driver/driverAllModel")
    Observable<CommonResponse<DriverInfo>> driverInfo(@QueryMap Map<String, String> map);

    //司机信息保存
    @POST("smc/driver")
    Observable<CommonResponse> driverInfoSave(@Body DriverInfo driverInfo);

    //司机信息审核
    @POST("smc/driver/updateaudit")
    Observable<CommonResponse> driverAudit(@QueryMap Map<String, String> map);


    //司机信息保存并审核通过
    @POST("smc/driver/saveaudit")
    Observable<CommonResponse> driverInfoSaveAndAudit(@Body DriverInfo driverInfo);

    //司机银行卡信息
    @GET("smc/driver/getBankCardByUserId")
    Observable<CommonResponse> driverBankCardInfo(@QueryMap Map<String, String> map);

    //编辑司机银行卡信息
    @POST("smc/driver/updateBankCardByUserId")
    Observable<CommonResponse> bankCardInfoUpdate(@Body BankCardInfo bankCardInfo);

    //绑定司机
    @POST("smc/drivercar/binddriver")
    Observable<CommonResponse> driverBind(@QueryMap Map<String, String> map);

    //解绑司机
    @POST("smc/drivercar/delbinddriver")
    Observable<CommonResponse> driverUnbind(@QueryMap Map<String, String> map);

    //默认司机
    @POST("smc/driver/defaultdriver")
    Observable<CommonResponse> defaultDriver(@QueryMap Map<String, String> map);


    //获取找车发单列表
    @GET("tianhui/erpware/viewSASaleDelivery")
    Observable<CommonResponse<FindCarDeliveryInfo>> getSearchCarList(@QueryMap Map<String, String> map);



    //获取报价列表
    @GET("plastics/quotation/getList")
    Observable<CommonResponse<QuotationListBean>> getQuotationList(@QueryMap Map<String, String> map);

    //报价保存
    @POST("plastics/quotation")
    Observable<CommonResponse> requestQuotationSave(@Body QuotationListBean.QuotationRecords driverInfo);

    //获取上次报价
    @GET("plastics/quotation/getModelByTop1UserId")
    Observable<CommonResponse<QuotationListBean.QuotationRecords>> getLastBaoJia(@QueryMap Map<String, String> map);


    //删除报价
    @DELETE("plastics/quotation")
    Observable<CommonResponse> deleteQuotation(@QueryMap Map<String, String> map);

    //获取只看报价列表
    @GET("plastics/quotation/getDetailNewList")
    Observable<CommonResponse<OnlyLookQuestBean>> getOnlyLookQuotatList(@QueryMap Map<String, String> map);


    //获取只看报价列表
    @GET("plastics/quotation/getNewList")
    Observable<CommonResponse<QuotationListBean>> getOnlyLookNewList(@QueryMap Map<String, String> map);


    //网页报价列表
    @GET("plastics/quotation/getReportListApp")
    Observable<CommonResponse> getBaoJiaWeb(@QueryMap Map<String, String> map);


    //获取只看报价列表
    @GET("contract/getContractTJ")
    Observable<CommonResponse<List<ShenHeTongJiBean>>> shenHeTongJi(@QueryMap Map<String, String> map);


    //附件合同未添加列表
    @GET("tianhui/erpware/viewSASaleOrder")
    Observable<CommonResponse<FuJianListBean>> getUnFuJianList(@QueryMap Map<String, String> map);


    //保存未上传附件原因
    @POST("tianhui/jd/careason")
    Observable<CommonResponse> sendFuJianYuan(@Body SendFuJianYuanBean driverInfo);

    //新增换抬头
    @POST("contract/sdhead")
    Observable<CommonResponse> addTaiTouNew(@Body AddTaiTouBean driverInfo);


    //保存未回款原因
    @POST("contract/xhd11")
    Observable<CommonResponse> sendHuiKuanYuan(@Body HuiKuanListBean.RecordsDTO driverInfo);

    //欠款信息
    @GET("contract/xhd11/list")
    Observable<CommonResponse<HuiKuanListBean>> getUnHuiKuanList(@QueryMap Map<String, String> map);



}


